package com.example;

import cn.hutool.core.text.StrFormatter;
import cn.hutool.core.util.StrUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class LearnStrUtil {

    @Test
    public void test1() {
        // 判断空字符串、去空格
        String str = "   ";
        System.out.println(StrUtil.isBlank(str));  // true
        System.out.println(StrUtil.trim(" Hello ")); // "Hello"

        // 字符串拼接
        String result = StrUtil.join("-", "2025", "04", "09");
        System.out.println(result); // 2025-04-09

        // 驼峰 ↔ 下划线 转换
        System.out.println(StrUtil.toCamelCase("user_name"));   // userName
        System.out.println(StrUtil.toUnderlineCase("userName")); // user_name

        // 截取字符串（支持负索引）
        String string = "abcdefg";
        System.out.println(StrUtil.sub(string, 2, 5));   // cde
        System.out.println(StrUtil.subSuf(string, 4));   // efg

        // 反转字符串 & 清除所有空白字符
        System.out.println(StrUtil.reverse("abcde"));           // edcba
        System.out.println(StrUtil.cleanBlank("a b\tc\n"));     // abc
    }

    @Test
    public void test2() {
        // StrFormatter —— 变量占位符替换
        String result = StrFormatter.format("Hi, {}, you have {} messages.", "Alice", 5);
        System.out.println(result); // Hi, Alice, you have 5 messages.
    }

    @Test
    public void test3() {
        String input = "  Hello \n World\t";
        // 用户输入一串文本，清除所有空白字符、转为小写并反转
        String result = StrUtil.reverse(StrUtil.cleanBlank(input.toLowerCase()));
        System.out.println(result); // dlrowolleh
    }

    @Test
    public void test4() {
        // 写一个方法，接收字符串数组和一个分隔符，返回拼接结果
        String[] arr = {"a", "b", "c", "d", "e", "f"};
        String string = joinWords(arr, "-");
        System.out.println(string);
    }

    public static String joinWords(String[] arr, String sep) {
        return StrUtil.join(sep, arr);
    }


}
